package com.lbs;


/**
 * Clase que representa la estructura de un domicilio fiscal.
 * 
 * @author Alberto Sandoval Sotelo Domingo 26/Agosto/2012
 *
 */
public class LbsDireccion extends LbsAbstractable{
	
	//Propiedades
	protected String calle;
	protected String noExt;
	protected String noInt;
	protected String colonia;
	protected String cp;
	protected String referencia;
	protected String munDel;
	protected String estado;
	protected String pais;
	
	/**
	 * Verifica que la direccion contenga todos los datos fiscalmente obligatorios, de lo contrario lanza una excepcion
	 * 
	 * @throws LbsException En caso de faltar algun dato.
	 */
	public void test() throws LbsException{
		if (calle==null)
			throw new LbsException("La direccion debe contener una calle.");
		if (cp==null)
			throw new LbsException("La direccion debe contener un codigo postal.");
		if (munDel==null)
			throw new LbsException("La direccion debe contener un municio o delegacion.");
		if (estado==null)
			throw new LbsException("La direccion debe contener un estado.");
		if (pais==null)
			throw new LbsException("La direccion debe contener un pais.");
	}
	
	public String getCalle() {
		return calle;
	}
	public void setCalle(String calle) {
		this.calle = calle;
	}
	public String getNoExt() {
		return noExt;
	}
	public void setNoExt(String noExt) {
		this.noExt = noExt;
	}
	public String getNoInt() {
		return noInt;
	}
	public void setNoInt(String noInt) {
		this.noInt = noInt;
	}
	public String getColonia() {
		return colonia;
	}
	public void setColonia(String colonia) {
		this.colonia = colonia;
	}
	public String getCp() {
		return cp;
	}
	public void setCp(String cp) {
		try{
			Integer.parseInt(cp);
		}catch (Exception e){
			throw new RuntimeException("El codigo postal solo debe contener digitos numericos.");
		}
		if (cp.length()!=5)
			throw new RuntimeException("El año de aprobacion debe ser a 5 digitos.");
		this.cp = cp;
	}
	public String getReferencia() {
		return referencia;
	}
	public void setReferencia(String referencia) {
		this.referencia = referencia;
	}
	public String getMunDel() {
		return munDel;
	}
	public void setMunDel(String munDel) {
		this.munDel = munDel;
	}
	public String getEstado() {
		return estado;
	}
	public void setEstado(String estado) {
		this.estado = estado;
	}
	public String getPais() {
		return pais;
	}
	public void setPais(String pais) {
		this.pais = pais;
	}
}
